package com.lsl.composite.book;

/**
 * 抽象类，用来实现 File 类和 Directory 类的一致性
 * 相当于类图中的 Component 角色,它是 Leaf 角色和 Composite 角色的父类
 *
 * @author Zed
 * @description
 * @date 2022/11/28 22:48
 */
public abstract class Entry {
    public abstract String getName();

    public abstract int getSize();

    public Entry add(Entry entry) throws Exception {
        throw new Exception();
    }

    public void printList() {
        printList("");
    }

    protected abstract void printList(String prefix);

    @Override
    public String toString() {
        return getName() + "(" + getSize() + ")";
    }
}
